本文是学习GB-T 35009-2018 串行NAND型快闪存储器接口规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
本标准规定了串行与非(NAND)
型快闪存储器(以下称为器件)的物理接口、存储阵列架构、指令定
义和参数表说明等。
本标准适用于串行NAND 型快闪存储器的设计和使用。
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 17574—1998 半导体器件 集成电路 第2部分:数字集成电路
GB/T 17574—1998界定的以及下列术语和定义适用于本文件。
3.1
状态寄存器 status register
存储器内部标志内部状态的寄存器。
3.2
一次性可编程 one-time programmable;OTP
存储器内只可编程一次的存储区域,该区域一次编程后不可再次修改。
3.3
纠错码 error correction code;ECC
一种可提高快闪存储器可靠性的纠错方法。
器件引出端功能定义见表1。
表 1 引出端功能定义
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
GB/T 35009—2018
表 1 (续)
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
单端口模式配备4个信号端口,即SCLK,CS#,SI,SO。
支持串行输入模式0和模式3,即输入数
据在时钟上升沿采样,输出数据在时钟下降沿输出。此模式支持 HOLD#
保持功能和 WP# 写保护
功能。
双端口传输模式的数据传输速度是单端口模式的两倍。配备4个信号端口,即
SCLK,CS#,
SI/SIO0,SO/SIO1。 支持串行输入模式0和模式3。此模式支持 HOLD# 保持功能和
WP# 写保护
功能。
双端口传输模式为可选模式。
四端口传输模式的数据传输速度是单端口模式的4倍。配备6个信号端口,即
SCLK,CS#,
SI/SIO0,SO/SIO1,WP#/SIO2,HOLD#/SIO3。 支持串行输入模式0和模式3。由于
HOLD# 和
WP# 被作为数据端口,所以此模式不再支持 HOLD# 保持功能和WP#
写保护功能。
四端口传输模式通过设置寄存器 QE 实现,见5.2。当 QE
被设置为1后,所有四端口传输模式指
令均可直接启动四端口传输模式。
四端口传输模式为可选模式。
单端口模式与双端口传输模式通过对应的指令直接转换。四端口传输模式通过设置寄存器
QE 实
现,见5.2。当 QE
被设置为1后,所有四端口传输模式指令均可直接启动四端口传输模式。
4.2.5 HOLD# 保 持 功 能
在单端口模式和双端口传输模式下,HOLD#
信号驱动为低电平后,任何通过串口与器件端口的通
信都会被保持。如此时器件内部由于读写擦等动作处于忙状态,内部状态将不会被保持。
启动保持功能应 CS# 端保持为低电平,HOLD#
驱动为低电平,之后应等到时钟首次为低电平,保
持功能开启。如时钟不为低电平,则等到时钟为低电平时开启保持功能。当 HOLD#
驱动为高电平
后,应等到时钟首次为低电平,保持功能结束。
HOLD# 保持功能启动时,数据输出端为高阻,数据输入和时钟将无效,如CS#
在保持功能有效期
间驱动为高电平,保持功能也将被结束。 HOLD# 保持功能条件如图1所示。
HOLD# 保持功能为可选功能。
GB/T 35009—2018
style="width:11.31321in;height:2.88662in" />IIOLD#/SIO3
图 1 HOLD# 保持功能条件
在单端口模式和双端口传输模式下,WP# 信号驱动为低电平后,如保护位 BRWD
为1,则块保护
位(BP0,BP1,BP2, 和 INV,CMP) 将被锁定而不能修改,两信号应同时具备。
WP# 写保护功能为可选功能。
当系统无法控制器件时,可通过 RESET#
能,器件复位状态如下:
复位来实现。 RESET# 驱动为低电平后,启动复位功
— 处于待机模式;
——所有易失寄存器都回到上电后的状态;
——块0的页0的数据会下载到缓存中。
RESET#
实现方式:对于8个引出端的封装,在单端口模式或双端口传输模式下,HOLD#
引出端 可通过寄存器复用为 RESET# 引出端。四端口传输模式下,由于 HOLD#
为数据端,所以无法实现复 用。对于16引出端或者24引出端封装,RESET#
引出端可单独封装出来,此时单端口模式/双端口传
输模式/四端口传输模式均支持 RESET# 复位功能。
RESET# 复位功能为可选功能。
存储阵列架构如图2所示。存储阵列由一个或多个面块组成,
一个面块由多个块组成, 一个块是最 小的擦除单元。
一个块由多个页组成,页地址称为行地址,
一个页由多个字节/字组成,页内地址称为列
地址。 一个器件所含有的块个数应在参数表6中说明。
一个页是最小的读和写单元。
一个页包含用户数据区和备用区,由多个字节组成。其中数据区的
大小应是2的 N 次方。
一个块中页的个数应是32的倍数。页的大小应在参数表8中说明。
每个面块应有一个页缓存器。页缓存器在数据还没有送到存储阵列之前或者数据从存储阵列下载
后起到暂存数据的作用。
GB/T 35009—2018
style="width:8.46042in;height:6.14722in" />style="height:0.12012in" />style="height:0.1067in" />style="height:0.1199in" />style="height:0.13332in" />style="height:0.12012in" />style="height:0.1067in" />style="height:0.12672in" />
图 2 存储阵列架构图
器件配备的寄存器状态位定义见表2和表3。所有非只读寄存器不应被复位指令
FFH 清零。如
CS# 在读取过程中保持为低电平,则读出的内部状态应即时更新。
表 2 状态寄存器位定义
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表 3 状态寄存器字节定义
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
|
|
标明只读的为只读寄存器,未标明的为可读可写寄存器。各个寄存器状态位的描述见表4,状态位
里有可读可写寄存器和只读寄存器。除 OTP PRT、GP PROT、PROT BLK、
功能寄存器(地为址
90H) 外,均为易失寄存器,即掉电后数据易失。寄存器的支持情况见表9说明。
表 4 状态寄存器位描述
|
|
|
---|---|---|
|
|
|
GB/T 35009—2018
表4(续)
|
|
|
---|---|---|
|
‘1,1,1,0,0' |
|
|
‘0’ |
|
|
‘0’ |
|
|
‘0' |
|
|
‘1' |
|
|
‘0’ |
|
|
‘0’ |
|
|
|
|
|
‘0’ |
|
|
‘0’ |
|
|
‘0' |
|
|
‘0’ |
|
|
‘0’ |
|
|
|
|
|
|
|
|
|
|
器件提供如下数据保护模式:
a) 块保护:块保护(以下简称
BP)方式对块进行写保护,当某个块处于写保护范围内时,任何对此
锁定块的编程和擦除操作都将不被执行。块保护的方式通过设置寄存器实现,寄存器设置对
应的保护方式见5.2。块保护的寄存器为易失寄存器,每次上电后,都恢复到默认状态。为了
保护数据,默认状态下所有块均被保护,所以对某个块作写操作,应首先将其保护锁定打开。
GB/T 35009—2018
其中 CMP 和 INV
两个寄存器为可选寄存器,是否支持应在参数列表中说明。块保护方式参
照附录 A。
b)
保护寄存器也可被保护起来,当被保护起来时,保护寄存器位不可被修改。引出端
WP# 置为
低电平且寄存器 BRWD 为高电平,二者缺一不可。
永久块保护可通过设定状态寄存器来设定保护区域,防止编程和擦除操作。永久块保护操作步
骤为:
a) 设置 PRT EN 为高电平;
b) 设置功能寄存器90H;
c) 设置高块地址、低块地址和反转字节;
d) 发送10H+3 字节地址,编程将保护范围固化,固化成功后 GP PROT
会置为高电平,否则依 然保持“0”。
擦除/编程永久块保护区域,会导致擦除/编程失败。这种保护功能是非易失性的,上电/断电都不
会影响保护状态。
器件提供读唯一性标识功能,步骤为:
a) 发送 ECH+0x00 地址,将唯一性标识读取到缓存内;
b) 发送0FH 指令读状态寄存器;
c) 用户可使用从缓存读数据指令(03H/0BH/3BH/6BH/BBH/EBH)
从缓存中读唯一性标识。
唯一性标识可存储在快速存储阵列中,允许主机以确定唯一性标识没有比特错误,则唯一性标识用
他的补码形式返回。如唯一性标识和他的位补码的异或都是1,唯一性标识是有效的。为了适应唯一
性标识的检索以防止位错误,应存储16份唯一性标识的副本及其对应的补码。例如,主机读32字节~
36字节,应返回唯一性标识的另一个副本和他的补码。
只读OTP
区域在出厂之前,由系统制造商将数据写入,系统出厂后用户只能通过读取指令将
OTP
区域的数据读出
器件中可选的提供一次编程存储区域和只读OTP 区域,OTP
各个区域的大小应列在参数列表中。
OTP 保护的操作步骤为:
a) 功能位 OTP EN 应置位为高电平;
b) 通过编程指令将数据编程到相应的地址页;
c) 主机记录完数据后,应设置功能位 OTP PRT, 将 OTP 区域锁定。 锁定后的
OTP 区域将不能再次被编程,只能执行读操作。
OTP 区域的读操作同样应将功能位 OTP EN
置为高电平,之后通过读取数据指令读取相应的地
址,从而将数据读出。功能位配置和指令见5.2。
器件遇到特殊情况可启动自毁功能。自毁之后,不再接收任何指令,即便掉电也不可恢复。此模式
永久生效。器件自毁功能的时序见6.2.11。
自毁功能为可选功能。
GB/T 35009—2018
所有的指令、地址和数据,都是在CS# 为低电平后SCLK
的上升沿,从最高有效位开始输入和输出
器件。将一个字节指令代码输入到器件,最高有效位首先在 SI 端,每位在 SCLK
的上升沿时锁定。
每一个指令序列都以一个字节的指令代码开始。根据指令不同,后面可能是地址字节、数据字节,
或者两者都有,或者都没有。当指令序列的最后一位输入完成后,CS#
应驱动为高电平。对于读、快速
读、读状态寄存器、读器件标识等指令,输入的指令序列后跟着数据输出序列,数据输出序列中的任何位
被移出后 CS#
均可被驱动为高电平。对于页编程、块擦除、写状态寄存器、写使能、写禁止、深度休眠等
指令,CS# 应在一个字节指令后驱动为高电平,否则指令不执行。即CS#
为低电平后,时钟脉冲是八 的整数倍时,CS#
应驱动为高电平。对于页编程,如再输入不是一个完整的字节时CS# 被驱动为高电
平,WEL 将不会被复位。指令集见表5。
表 5 指令集
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|
|
|
||||||
|
|
||||||
|
|
|
|
|
|||
|
|
|
|
|
|||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||||||
|
|||||||
|
GB/T 35009—2018
写使能(06H) 是为了设置写使能寄存器 WEL, 在用户改变存储阵列的内容前,WEL
的寄存器应设 置为高电平,才可执行写操作。写操作包括页编程、OTP
区域编程、OTP 保护、块擦除。写使能寄存器
WEL 在每次写操作结束后自动清为零,也可通过写禁止指令04H 清除为零。
style="width:5.58659in;height:2.78652in" />06H 指令的时序如图3所示。
图 3 06H 指令时序图
写禁止(04H) 是为了复位写使能锁存位 WEL。WEL 位在下列情况下会被复位:
——写状态寄存器完成后,掉电复位并再次上电后;
——在页编程、块擦除、擦除/编程安全寄存器、复位指令完成后。
style="width:5.55339in;height:2.66662in" />
图 4 04H 指令时序图
读状态寄存器(0FH) 用来监控器件的状态。可通过0FH
后加访问地址将对应的寄存器内容读出。
GB/T 35009—2018
style="width:11.41328in;height:3.02676in" />
最高有效位
图 5 0FH 指令时序图
写状态寄存器(1FH)
可对所有可写可读的寄存器进行修改。对于易失寄存器,可直接修改内容。
对于非易失寄存器,比如 OTP PRT, 执行完写状态寄存器后,还应将 OTP EN
置为高电平,将 WEL
置为高电平,发送编程指令,当编程操作完成后,才完成了 OTP PRT 的写入。1FH
指令时序如图6
所示。
style="width:11.45339in;height:2.84411in" />
图 6 1FH 指令时序图
读页数据(13H) 分为两个步骤:
a) 发送读页数据指令13H, 将页数据下载到缓存内;
b) 待13H 指令执行完毕后,发送03H/0BH/3BH/6BH 从缓存中将数据读出。
13H 指令后面应跟24位地址,地址指向所访问页的地址。13H
指令只能在非忙时执行,执行过程
中可通过判断内部忙状态来确定是否执行完毕。执行完毕后,数据已从存储阵列下载到缓存中。13H
指令时序如图7所示。
GB/T 35009—2018
style="width:8.34669in;height:9.16674in" />
图 7 1FH 指令时序图
03H/0BH/3BH/6BH
指令时序分别如图8、图9和图10所示。地址为页内地址,即16位列地址。
其中有效地址的最高位为面块地址说明,如面块个数为1,那么面块地址为0。各个指令的冗余字节个
数和位置均应在参数列表中说明。在执行6BH 四端口指令之前,应设置寄存器QE
为高电平进入四端
口传输模式,才能执行四端口指令。
GB/T 35009—2018
style="width:9.95999in;height:6.11336in" />
图 8 03 H/0BH 指令时序图
style="width:9.73327in;height:2.93326in" />
CS#
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
SCLK
冗余字节
4 2 0 6 4 2 0 6 4 2
输出数据1 输出数据2
SO:SIO1
5 3 1 7 5 3 1 7 5 3
最高有效位 最高有效位
图 9 3 BH 指令时序图
style="width:8.49993in" />style="width:3.68003in" />style="width:8.11337in;height:4.42662in" />GB/T 35009—2018
CS#
0 1 2 3 4 5 6 7 8 9 10 11 1213 14 22 23
SCLK
地址15-0
SI(S100)
style="width:3.74674in" />
|
---|
|
CS#
SCLK
SI(SIO0)
SO(SIO1)
WP#(SJO2)
HOLD#(SIO3)
图10 6BH 指令时序图
页编程(10H) 分为3个步骤:
a) 用06H 指令打开写使能寄存器 WEL;
b) 通过02H/32H/84H/C4H/34H 指令将数据下载到缓存中;
c) 发送编程执行指令10H, 此时器件内部处于忙状态,直到编程执行完毕。
02H/32H/84H/C4H/34H
指令时序分别如图11、图12、图13和图14所示。地址为页内地址。其
中有效地址的最高位为面块地址说明,如面块个数为1,那么面块地址为0。在执行32H/C4H/34H
四
端口指令前,应设置寄存器 QE
为高电平进入四端口传输模式,才能执行四端口指令。
GB/T 35009—2018
CS#
0 1 2 3 4 5 6 7 8 9 10 1 13 14 22 23
SCLK
指令
Sl
02H
15
3
地址15-0
0
CS#
SCLK
Sl
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
数据1
7 6 5 4 3 2
最高有效位
图 1 1 02 H 指令时序图
CS#
SCLK
SI(SI00)
SO(S1O1)
WP#(SIO2)
IIOLD#(S[O3)
CS#
32 33 34 35 36 37 38 39 40 41 42 4344 2 45 46 47
SCLK
S1(SIO0)
字节12
4 0 () 4 ()
style="height:0.13992in" /> () () 4 0 4 () 4 0 4 0) 4 0 4 () (
SO(SIO1)
WP#(SIO2)
HOLD#(SIO3)-
5
6
2
3
5
6
7
5
6
7
5
6
了
2
3
5
6
7
5
6
5
2
3
5
6
7
1
2
3
5
6
7
2
3
5
6
7
5
6
d
5
6
7
2
3
图12 32H 指令时序图
13
style="height:3.60668in" />style="width:12.04028in;height:4.58056in" />style="width:10.35332in;height:0.37334in" />GB/T 35009—2018
style="width:9.5934in;height:2.38678in" />CS#
SCLK
SI
style="width:11.91328in;height:2.56674in" />SI
指令时序图
CS:
SCLK
SI(SIO0)
SO(S101)
WP#(SIO2)
HO1. 1)(S103)-
32
6
0
2
40 41 42 43 44 45 46 47
字节11 字节12 字书
0 0 0
3
图14 C4H/34H 指令时序图
10H 指令后面应给定24位地址,地址指向所访问页的地址。10H
指令只能在非忙时执行,执行过
程中可通过判断内部忙状态来确定是否执行完毕。执行完毕后,数据已从缓存下载到存储阵列。10H
GB/T 35009—2018
style="width:8.51991in;height:6.31334in" />指令时序如图15所示。
style="width:8.40663in;height:2.92006in" />
图15 10H 指令时序图
块擦除(D8H) 操作以块为单位,分为两个步骤:
a) 用06H 指令打开写使能寄存器 WEL;
b) 发送块擦除指令D8H,
此时器件处于内部忙状态。直到指令执行完毕,执行过程中可通过判
断内部忙状态来确定是否执行完毕。 D8H
指令只能在器件内部空闲状态时发送并执行。
D8H 指令时序如图16所示。
GB/T 35009—2018
style="width:8.57341in;height:9.48002in" />
图16 D8H 指令时序图
复位(FFH)
将停止一切正在做的内部操作,器件任何时候都应响应指令。该指令发送后,器件内
部处于忙状态,直到执行结束,器件自动恢复到空闲状态。可通过读内部寄存器实时读取内部状态。另
外,此指令对对寄存器和数据的作用如下:
a) 将只读寄存器中的数据清零;
b) 保留非只读寄存器中的数据;
c) 保留缓存和内部寄存器中的数据。 FFH 指令时序如图17所示。
style="width:8.02667in;height:2.46004in" />class="anchor">GB/T 35009—2018
Sl
SO
SI
style="width:8.22665in;height:3.27998in" />SO
style="width:8.47361in;height:2.71389in" />
最高有效位 最高有效位
图17 FFH 指令时序图
读标识(9FH)
可将制造商信息以及芯片基本信息读出,包括制造商标识和器件标识,用户通过读标
识来确认器件。9FH 指令时序如图18所示。
GB/T 35009—2018
style="width:8.74663in;height:6.0401in" />
图18 9FH 指令时序图
6.2.10 读参数表(5AH)
参数表描述了器件的功能、特性和容量,这些参数表可通过主机系统进行查询。5AH
指令时序如
图 1 9 所 示 。
style="width:8.4466in;height:5.73913in" />
图19 5AH 指令时序图
6.2.11 器件自毁(A5H-FAH-A5H-0AH-10H)
器件执行自毁指令后,不再接受任何指令。执行器件自毁指令的步骤如下:
a) 驱动CS# 为低电平;
b) 连续发送 A5H-FAH-A5H-0AH 指令,每个指令码发送后应驱动 CS#
为高电平;
c) 发送10H 指令。
style="width:3.87339in" />style="width:8.54666in" />style="width:4.59335in" />style="width:2.68001in" />style="height:0.96668in" />style="width:4.04in" />style="width:2.63344in" />style="width:9.63336in;height:2.77992in" />GB/T 35009—2018
指令执行完毕后,器件完成自毁。 A5H-FAH-A5H-0AH-10H
指令时序如图20所示。
CS#
01 2 3 45 6 7
SCLK
指令
SI
A5H
8 9 14151617 22232425 30313233 4039
|
|
---|
高 阳
CS#
SCLK
ST
style="width:8.14011in" />
8 9 14 151617 22 232425 3031 3233 4039
style="width:2.57995in;height:0.31328in" />
指令.
AH
SO 高 阻
图20 A5H-FAH-A5H-OAH-10H 指令时序图
指令格式模式是指指令/地址/数据输入的形式。器件是否支持某种指令模式,应在表7中说明。
模式描述如下:
a)
1-1-1模式,指令/地址/数据分别是单端口-单端口-单端口输入,时序如图21所示;
b)
1-1-2模式,指令/地址是按单端口输入,而数据是按双端口输入,时序如图22所示;
c) 1-1-4
模式,指令/地址是按单端口输入,而数据是按四端口输入,时序如图23所示。
图21 1-1-1模式
style="width:8.27337in;height:2.81336in" />
图22 1-1-2模式
GB/T 35009—2018
style="width:8.09375in;height:4.48056in" />
图23 1-1-4模式
参数表头位于参数表的首地址,他告知用户信息是有效的。参数表头的参数定义如图24所示。
7:0 15:8 23:16 31:24
|
|
|
|
---|
图24 参数表头定义
参数列表定义如图25所示,其中[15:0]分别为参数列表长度,[23:16]为列表版本号,[31:24]为保
留位,应设置为0xFF。
15:() 23:16 31:24
|
|
|
---|
图25 参数列表头定义
双字1定义见表6。
表 6 参数列表双字1 定义
|
|
|
---|---|---|
|
|
|
|
|
GB/T 35009—2018
双字2定义见表7。
表 7 参数列表双字2定义
|
|
---|---|
|
|
|
|
双字3定义见表8。
表 8 参数列表双字3定义
|
|
||
---|---|---|---|
|
|
|
|
|
|
||
|
|
||
|
0:不包含 1:包含 |
||
|
|
||
|
|
双字4定义见表9。
表 9 参数列表双字4定义
|
|
---|---|
|
|
GB/T 35009—2018
表 9 (续)
|
|
---|---|
|
|
|
|
|
|
|
|
双字5定义见表10。
表10 参数列表双字5定义
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GB/T 35009—2018
双字6定义见表11。
表11 参数列表双字6定义
|
|
---|---|
|
|
|
|
双字7定义见表12。
表12 参数列表双字7定义
|
|
---|---|
|
|
|
|
|
|
双字8定义见表13。
表13 参数列表双字8定义
|
|
---|---|
|
|
7.2.10 参数列表双字9定义
双字9定义见表14。
表14 参数列表双字9定义
|
|
---|---|
|
|
7.2.11 参数列表双字10定义
双字10定义见表15。
GB/T 35009—2018
表15 参数列表双字10定义
|
|
---|---|
|
|
7.2.12 参数列表双字11 定义
双字11定义见表16。
表16 参数列表双字11定义
|
|
---|---|
|
|
7.2.13 参数列表双字12定义
双字12定义见表17。
表17 参数列表双字12定义
|
|
---|---|
|
|
7.2.14 参数列表双字13定义
双字13定义见表18。
表18 参数列表双字13定义
|
|
---|---|
|
|
GB/T 35009—2018
(资料性附录)
块保护(BP) 方式
块保护方式见表 A.1。
表 A.1 BP 方式
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
更多内容 可以 GB-T 35009-2018 串行NAND型快闪存储器接口规范. 进一步学习